#ifndef __MATERIAL_STATE_H__
#define __MATERIAL_STATE_H__

#include "Color.h"
#include "RenderState.h"

class MaterialState : public RenderState
{
public:
	MaterialState();
	virtual Type get_type() const;

	Color& emissive();
	Color& ambient();
	Color& diffuse();
	Color& specular();
	Color& shininess();

protected:
	Color m_emissive;
	Color m_ambient;
	Color m_diffuse;
	Color m_specular;
	Real  m_shininess;
	Real  m_alpha;
};

#include "MaterialState.inl"

#endif